package org.example.code.test2025.three_month;

import java.util.*;

public class test0311 {

    private static final Map<String,Integer> map = new HashMap<>();
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        init();
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String[] strs = in.nextLine().split(" ");
            List<Integer> list = new ArrayList<>();
            for (String str : strs) {
                list.add(map.get(str));
            }
            if(fun2(list)){
                System.out.println("Yes");
            }else {
                System.out.println("No");
            }
        }
        in.close();
    }

    private static void init(){
        map.put("A",1);
        map.put("2",2);
        map.put("3",3);
        map.put("4",4);
        map.put("5",5);
        map.put("6",6);
        map.put("7",7);
        map.put("8",8);
        map.put("9",9);
        map.put("10",10);
        map.put("J",11);
        map.put("Q",12);
        map.put("K",13);
    }

    private static boolean fun2(List<Integer> list){
        if(list.size()==1){
            return Math.abs(list.get(0))==24;
        }
        for(int i=0;i<list.size();i++){
            for(int j=0;j<list.size();j++){
                if(i!=j){
                    List<Integer> nums = new ArrayList<>();
                    for(int p=0;p<list.size();p++){
                        if(p!=i&&p!=j){
                            nums.add(list.get(p));
                        }
                    }
                    int x = list.get(i);
                    int y = list.get(j);
                    nums.add(x+y);
                    if(fun2(nums)){
                        return true;
                    }
                    nums.remove(nums.size()-1);
                    nums.add(x-y);
                    if(fun2(nums)){
                        return true;
                    }
                    nums.remove(nums.size()-1);
                    nums.add(y-x);
                    if(fun2(nums)){
                        return true;
                    }
                    nums.remove(nums.size()-1);
                    nums.add(x*y);
                    if(fun2(nums)){
                        return true;
                    }
                    nums.remove(nums.size()-1);
                    if(y!=0&&x%y==0){
                        nums.add(x/y);
                        if(fun2(nums)){
                            return true;
                        }
                        nums.remove(nums.size()-1);
                    }
                    if(x!=0&&y%x==0){
                        nums.add(y/x);
                        if(fun2(nums)){
                            return true;
                        }
                        nums.remove(nums.size()-1);
                    }
                }
            }
        }
        return false;
    }

//    private static int fun(int amount, int[] arr) {
//        int[] dp = new int[amount+1];
//        Arrays.fill(dp,Integer.MAX_VALUE);
//        dp[0]=0;
//        for(int i=1;i<=amount;i++){
//            for(int a:arr){
//                if(i>=a&&dp[i-a]!=Integer.MAX_VALUE){
//                    dp[i]=Math.min(dp[i],dp[i-a]+1);
//                }
//            }
//        }
//        return dp[amount]==Integer.MAX_VALUE?-1:dp[amount];
//    }
}
